10 REM HIDDEN CAVERN 12 REM BY JAMES C.HILTY 14 POKE52,48:POKE56,48 16 PRINT"[147]":POKE53281,15:POKE53280,0 20 REM TITLE SCREEN 22 PRINT:PRINTTAB(4)"[144] [146]  [146]  [146]  [223][146]  [223][146]  [146] [223][146]  " 24 PRINTTAB(4)"[144]  [144]  [146] [144]  [146] [144]  [223][146] [144]  [223][146] [144]  [146] [144] [223][144]  " 26 PRINTTAB(4)"[144]  [144]  [146] [144]  [146] [144]  [146] [144]  [146] [144]  [146] [144]  [144]  " 28 PRINTTAB(4)"[144]  [144]  [146] [144]  [146] [144]  [144]  [146] [144]  [144]  [146] [144]  [144] [146] [144]  " 30 PRINTTAB(4)"[144]  [146] [144]  [146] [144]  [144]  [146] [144]  [144]  [146] [144]  [146] [144]  " 32 PRINTTAB(4)"[144]  [144]  [146] [144]  [146] [144]  [144]  [146] [144]  [144]  [146] [144]  [146] [144]  " 34 PRINTTAB(4)"[144]  [144]  [146] [144]  [146] [144]  [146] [144]  [146] [144]  [144] [146] [144]  [146][223] " 36 PRINTTAB(5)" [146]  [146]  [146]  [146][169]  [146][169]  [146]  [146] [223]" 38 PRINT:PRINT 40 PRINTTAB(6)" [146]  [146]  [146]  [146]  [146]  [146] [223][146]  " 42 PRINTTAB(6)" [144] [146] [169] [223][146]  [144]  [144] [146]  [144] [146]  [144]  [144] [146]  [223] [144] " 44 PRINTTAB(6)" [144] [146]  [144][169] [144][223][146]  [144]  [144] [146]  [144] [146]  [144] [146]  [144] " 46 PRINTTAB(6)" [144] [146]  [144] [146]  [144]  [144] [146]  [146]  [144] [146]  [144] " 48 PRINTTAB(6)" [144] [146]  [144]  [144] [146]  [144]  [144] [146]  [144] [146]  [146]  [144] " 52 PRINTTAB(6)" [146]  [144]  [144] [146]  [144] [146][169]  [146]  [144]  [144] [146]  [144] [146][223][144] " 54 PRINTTAB(7)"[144] [146]  [146]  [146]  [146]  [146]  [146]  [146]  [146] [223]" 56 PRINT:PRINTTAB(9)"LAND OF THE CAVE GLOBS" 60 FORL=54272TO54295:POKEL,0:NEXT:POKE54296,15:POKE54277,8:POKE54278,255 62 POKE54276,21:F1=2:FORZ=1TO28:F2=80:POKE54273,F1:FORY=1TO5:POKE54287,F2 64 F2=F2/0.9:NEXTY:F1=F1+9:NEXTZ:POKE54278,15 66 PRINTTAB(6)"PLEASE WAIT....READING DATA" 68 REM READ SPRITE SHAPE DATA 70 FORX=12288TO12350:READA:POKEX,A:NEXT 72 FORX=12352TO12414:READA:POKEX,A:NEXT 74 FORX=12416TO12478:READA:POKEX,A:NEXT 76 FORX=12480TO12542:READA:POKEX,A:NEXT 78 FORX=12544TO12606:READA:POKEX,A:NEXT 80 FORX=12608TO12670:READA:POKEX,A:NEXT 82 FORX=12672TO12734:READA:POKEX,A:NEXT 84 FORX=12736TO12798:READA:POKEX,A:NEXT 86 FORX=12800TO12862:READA:POKEX,A:NEXT 88 REM READ SCROLL DATA 90 FORX=49152TO49528:READA:POKEX,A:NEXT 92 REM READ SPRITE MOTION ROUTINE 94 FORX=50880TO51116:READA:POKEX,A:NEXT 96 V=53248 97 HS=0 98 REM SET UP PLAYING SCREEN 99 SC=0:M=0:SH=3 100 POKE53280,0:POKE53281,0:PRINT"[147][159][185][185][185][185][185][185][185] [185][185][185][185][185][185][185] [185][185][185][185][185][185][185][185] [185][185][185][185][185][185][185][185]" 102 PRINT"[181]SCORE[182] [181]SHIPS[182] [181]HIDDEN[182] [181]MISSES[182]" 104 PRINT"[184][184][184][184][184][184][184] [184][184][184][184][184][184][184] [181]CAVERN[182] [184][184][184][184][184][184][184][184]" 106 PRINTTAB(17)"[184][184][184][184][184][184][184][184]" 108 PRINT" " 110 PRINTTAB(2)" [146]  [146]  [146]  [146]  [146]  " 112 PRINTTAB(2)" [146]  [146]  [146]  [146]  [146]  " 114 PRINTTAB(3)" [146]  [146]  [146]  [146]  [146]  " 116 PRINTTAB(3)" [146]  [146][146]  [146] [161] [161]  " 118 PRINTTAB(3)" [146] [161]  [146] [161]  " 120 PRINTTAB(3)"[161] [161]  [146] [180]  " 122 PRINTTAB(3)"[161]  [146] [182]" 124 PRINTTAB(3)"[161]  [146] [182]" 126 PRINTTAB(3)"[161]  [146] [182]" 128 PRINTTAB(19)"[180]" 130 PRINT:PRINTTAB(11)"[181] [182]" 132 PRINTTAB(11)"[181] [182]" 134 PRINTTAB(2)"[161]  [146] [161] [182] " 136 PRINTTAB(2)"[161]  [146]  [146]  " 138 PRINTTAB(2)" [146]  [146]  [146]  " 140 PRINTTAB(2)" [146]  [146]  [146]  " 142 PRINTTAB(2)" [146]  [146]  [146]  " 144 PRINT" " 146 POKE49522,2:POKE49523,0:POKE49524,38:POKE49525,5:POKE49526,22 148 POKEV+39,3:POKEV+40,10:POKEV+41,13:POKEV+42,13:POKEV+43,13:POKEV+44,13 150 POKEV+45,7:POKEV+46,1 152 POKE2040,192:POKE2041,192:POKE2042,196:POKE2043,196 154 POKE2044,197:POKE2045,197:POKE2046,198:POKE2047,199 155 POKEV+29,60:POKEV+23,60 156 POKEV+0,40:POKEV+1,154:POKEV+2,50:POKEV+3,220 158 POKEV+4,40:POKEV+5,82:POKEV+6,200:POKEV+7,82 160 POKEV+8,46:POKEV+9,196:POKEV+10,230:POKEV+11,196 162 POKEV+14,246:POKEV+15,161 164 POKEV+27,63:POKEV+21,191 166 POKE50433,2:POKE50434,254:POKE50435,1:POKE50436,3 168 POKE50437,4:POKE50438,0:POKE50439,4:POKE50440,0 170 POKE50441,4:POKE50442,0:POKE50443,4:POKE50444,0 172 POKE50445,0:POKE50446,0:POKE50447,0:POKE50448,0 175 PRINT" "SC" "SH:PRINT""TAB(33)M 176 FORL=54272TO54295:POKEL,0:NEXT 177 POKE54287,15:POKE54284,160:POKE54285,252 178 POKE54280,80:POKE54279,40:POKE54283,129 180 W1=PEEK(V+30):W2=PEEK(V+31) 190 POKE50432,255:SYS51104 199 REM MAIN LOOP 200 JY=PEEK(56321)AND15 204 IFJY=13THENPOKE50448,1:POKE50688,128 208 IFJY=14THENPOKE50448,255:POKE50688,128 210 FB=-((PEEK(56321)AND16)=0):IFFB=1THEN300 211 SYS49152 212 W1=PEEK(V+30):IFW1>128THEN350 214 W2=PEEK(V+31):IFW2>127THEN350 215 IF SC>2500THENSYS49152 216 SC=SC+1:PRINT" "SC 218 POKE50448,0:POKE50688,128 219 IFSC>500THENSYS49152 220 GOTO200 300 REM FIRE 304 X=PEEK(V+14)-20:Y=PEEK(V+15) 306 POKEV+12,X:POKEV+13,Y:POKEV+21,255 307 POKE50445,255:POKE50688,64:POKE50432,64 310 C=PEEK(V+12):IFC<32THEN320 311 W1=PEEK(V+30):IFPEEK(V+30)>64THEN330 312 GOTO310 320 POKE50445,0:POKE50688,64:POKE50432,255:POKEV+21,191 322 M=M+1:PRINT""TAB(33)M:IFM>2THEN500 323 GOTO200 330 REM HIT CAVE GLOB 331 Q=192 332 POKEV+21,191:POKE50445,0:POKE50688,64 334 FORX=54272TO54295:POKEX,0:NEXT:POKE54296,15 336 POKE54277,8:POKE54278,255:POKE54276,23:F1=202 338 FORZ=1TO16:F2=30:Q=Q+1:IFQ=196THENQ=192 339 POKE2040,Q:POKE2041,Q 340 POKE54273,F1:FORY=1TO10:POKE54287,F2:F2=F2*1.01:NEXTY:F1=F1-8:NEXTZ 344 SC=SC+250:PRINT" "SC 346 FORX=54272TO54295:POKEX,0:NEXT 347 POKE54287,15:POKE54284,160:POKE54285,252 348 POKE54280,80:POKE54279,40:POKE54283,129 349 POKEV+1,52:POKEV+3,220:W1=PEEK(V+30):POKE50432,255:GOTO200 350 REM CAVE CRUISER HIT 351 POKE50432,0 352 FORX=54272TO54295:POKEX,0:NEXT:POKE54296,15:POKE54277,8:POKE54278,255 354 POKE54276,85:F1=100:F2=230 356 FORZ=1TO77:POKE54272,F1:POKE54287,F2 358 F2=F2-2:F1=F1*.99:NEXT 360 FORX=54272TO54295:POKEX,0:NEXT 362 POKE54287,15:POKE54284,160:POKE54285,252 363 POKE2047,200 364 POKE54280,80:POKE54279,40:POKE54283,129:FORT=0TO1000:NEXT 366 FORX=54272TO54295:POKEX,0:NEXT 367 SH=SH-1:IFSH=0THEN500 368 POKEV+21,63:FORT=0TO500:NEXT:POKEV+21,0:POKEV+16,0:GOTO100 500 REM GAME OVER-REPLAY 501 FORL=54272TO54295:POKEL,0:NEXT 502 PRINT"[147][159]":POKEV+21,0 503 IFSC>HS THEN HS=SC 504 IFM=3THENPRINT""TAB(8)"GAME OVER----YOU MISSED 3 SHOTS":GOTO510 505 PRINT""TAB(8)"GAME OVER----YOU LOST 3 SHIPS" 510 PRINT""TAB(12)"S C O R E ";SC 512 PRINT""TAB(12)"HIGH SCORE ";HS 520 PRINT""TAB(12)"PLAY AGAIN--Y OR N" 522 GET JUNK$:IF JUNK$<>""THEN522 523 GETA$:IFA$=""THEN523 524 IFA$="Y"THEN530 526 END 530 POKEV+21,0:POKE50432,0:PRINT"[147]" 535 POKEV+16,0 540 GOTO99 999 REM CAVE GLOB SPRITE DATA 1000 DATA 0,0,0,0,28,0,0,62,0,0,127,0,0,201,128,0,255,0,0,127,0,2,62,16,2,12 1002 DATA 16,30,12,28,3,255,240,30,14,28,0,15,16,0,31,128 1004 DATA 0,63,192,0,127,192,0,127,192,0,127,224,3,240,127,0,64,8,0,64,8 1006 REM CAVE GLOB 2 1008 DATA 0,0,0,0,2,128,4,2,128,4,7,192,127,130,24,7,226,60,7,242,118 1010 DATA 3,255,247,3,255,255,3,242,118,3,226,60,3,194,24,7,130,0 1012 DATA 7,7,128,28,7,0,4,5,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0 1014 REM CAVE GLOB 3 1016 DATA 16,2,0,16,2,0,126,15,192,7,254,0,3,254,0,3,254,0,3,252,0 1018 DATA 1,248,0,8,240,0,56,112,120,15,255,192,56,48,120,8,48,64 1020 DATA 8,124,64,0,254,0,1,255,0,1,147,0,0,254,0,0,124,0,0,56,0,0,0,0 1022 REM CAVE GLOB 4 1024 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,160,0,0,160,32,0,224,56,1,224,224 1026 DATA 0,65,224,24,67,192,60,71,192,108,79,192,255,255,192,239,255,192 1028 DATA 110,79,224,60,71,224,24,65,252,3,224,32,1,64,32,1,64,0,0,0,0 1030 REM UPPER STALAGMITE 1032 DATA 255,255,255,255,255,255,240,112,31,240,112,31,240,112,31,224,112,15 1034 DATA 224,96,15,224,96,15,224,96,15,224,0,15,224,0,15,224,0,15 1036 DATA 192,0,7,192,0,7,192,0,7,192,0,3,0,0,3,0,0,3,0,0,3,0,0,3,0,0,3 1038 REM LOWER STALAGMITE 1040 DATA 32,0,0,32,0,0,32,0,0,96,0,6,96,0,6,96,0,6,224,0,6,224,0,6 1042 DATA 224,0,7,224,0,7,224,128,7,224,128,7,224,128,7,241,192,7,241,192,7 1044 DATA 241,192,7,241,192,7,241,192,7,241,192,7,255,255,255,255,255,255 1046 REM TORPEDOE 1048 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,153,0,0,90,0,0,60,0,1,255,128 1050 DATA 1,255,128,0,60,0,0,90,0,0,153,0,0,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1052 DATA 0,0,0,0,0,0 1054 REM CAVE CRUISER 1056 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,28,0,0,28,0,0,60,0,0,124 1058 DATA 0,0,252,0,1,252,3,255,255,15,255,255,63,255,252 1060 DATA 0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1062 REM EXPLOSION 1064 DATA 0,0,0,76,1,0,0,128,4,32,4,32,0,48,0,8,0,0,0,32,48,80,0,130 1066 DATA 3,12,0,0,0,4,32,0,128,0,36,0,0,0,192,201,0,4,0,0,0,19,32,192 1068 DATA 0,4,0,32,0,1,4,192,0,0,4,8,0,0,0 1070 REM SCROLL DATA 1072 DATA 174,114,193,224,3,144,3,76,117,192,188,114,193,140,121,193,174 1074 DATA 118,193,232,202,32,30,193,172,121,193,173,119,193,201,2,208,10 1076 DATA 169,32,72,173,33,208,72,76,50,192,177,90,72,177,92,72,204 1078 DATA 116,193,240,20,200,177,90,72,177,92,136,145,92,104,145,90,200 1080 DATA 204,116,193,208,238,240,18,136,177,90,72,177,92,200,145,92,104 1082 DATA 145,90,136,204,115,193,208,238,173,119,193,201,0,208,5,104,104 1084 DATA 76,111,192,104,145,92,104,145,90,236,117,193,208,160,96,172,116 1086 DATA 193,200,189,114,193,170,32,30,193,173,120,193,201,2,208,19,136 1088 DATA 169,32,153,122,193,173,33,208,153,162,193,204,115,193,208,239,240 1090 DATA 16,136,177,90,153,122,193,177,92,153,162,193,204,115,193,208,240 1092 DATA 236,117,193,240,37,202,32,30,193,172,116,193,200,136,177,90,72 1094 DATA 177,92,32,48,193,145,92,104,145,90,32,56,193,204,115,193,208 1096 DATA 234,236,117,193,208,221,240,46,202,206,118,193,232,32,30,193,172 1098 DATA 116,193,200,136,32,48,193,177,90,72,177,92,32,56,193,145,92 1100 DATA 104,145,90,204,115,193,208,234,236,118,193,208,221,238,118,193,232 1102 DATA 32,30,193,173,120,193,201,0,240,20,172,115,193,136,200,185,162 1104 DATA 193,145,92,185,122,193,145,90,204,116,193,208,240,96,189,89,193 1106 DATA 133,91,24,105,212,133,93,189,64,193,133,90,133,92,96,72,152 1108 DATA 24,105,40,168,104,96,72,152,56,233,40,168,104,96,0,40,80 1110 DATA 120,160,200,240,24,64,104,144,184,224,8,48,88,128,168,208,248 1112 DATA 32,72,112,152,192,4,4,4,4,4,4,4,5,5,5,5,5 1114 DATA 5,6,6,6,6,6,6,6,7,7,7,7,7,3,0,4,0,4,1,1 1116 REM SPRITE MOTION DATA 1118 DATA 169,255,45,0,198,240,16,169,0,141,0,198,162,21,189,0 1120 DATA 197,157,0,198,202,208,247,162,1,169,1,141,80,197,173,80 1122 DATA 197,45,0,197,240,3,76,243,198,232,232,14,80,197,208,238,76,49,234 1124 DATA 169,0,29,0,197,208,3,76,97,199,169,128,61 1126 DATA 0,197,240,48,254,0,198,208,40,222,255,207,76,144,199,80 1128 DATA 197,45,16,208,208,12,173,16,208,13,80,197,141,16,208,76 1130 DATA 43,199,173,16,208,77,80,197,141,16,208,189,0,197,157,0 1132 DATA 198,76,97,199,222,0,198,208,40,254,255,207,208,29,173,80 1134 DATA 197,45,16,208,208,12,173,16,208,13,80,197,141,16,208,76 1136 DATA 91,199,173,16,208,77,80,197,141,16,208,189,0,197,157,0 1138 DATA 198,169,0,232,29,0,197,208,3,76,140,199,169,128,61,0 1140 DATA 197,240,11,254,0,198,208,20,222,255,207,76,134,199,222,0 1142 DATA 198,208,9,254,255,207,189,0,197,157,0,198,202,76,233,198 1144 DATA 169,255,221,255,207,240,3,76,43,199,173,80,197,76,17,199 1146 DATA 120,169,192,141,20,3,169,198,141,21,3,88,96